home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / toolkit / riruf1 / empform.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-05-19  |  15.1 KB  |  567 lines

  1. VERSION 2.00
  2. Begin Form EmpForm 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "Employee Data"
  6.    ClientHeight    =   4800
  7.    ClientLeft      =   1860
  8.    ClientTop       =   1515
  9.    ClientWidth     =   5445
  10.    Height          =   5205
  11.    KeyPreview      =   -1  'True
  12.    Left            =   1800
  13.    LinkTopic       =   "Form2"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   4800
  17.    ScaleWidth      =   5445
  18.    Top             =   1170
  19.    Width           =   5565
  20.    Begin SSFrame Frame3D1 
  21.       Font3D          =   0  'None
  22.       Height          =   2175
  23.       Left            =   120
  24.       TabIndex        =   13
  25.       Top             =   2520
  26.       Width           =   5175
  27.       Begin ComboBox cboState 
  28.          Height          =   300
  29.          Left            =   3000
  30.          Style           =   2  'Dropdown List
  31.          TabIndex        =   11
  32.          Top             =   1680
  33.          Width           =   855
  34.       End
  35.       Begin SSCheck chkActive 
  36.          Caption         =   "&Active"
  37.          Font3D          =   0  'None
  38.          Height          =   255
  39.          Left            =   4080
  40.          TabIndex        =   12
  41.          Top             =   1680
  42.          Width           =   855
  43.       End
  44.       Begin ComboBox cboWage 
  45.          Height          =   300
  46.          Left            =   1800
  47.          Sorted          =   -1  'True
  48.          TabIndex        =   10
  49.          Top             =   1680
  50.          Width           =   1095
  51.       End
  52.       Begin ComboBox cboStatus 
  53.          Height          =   300
  54.          Left            =   120
  55.          Style           =   2  'Dropdown List
  56.          TabIndex        =   8
  57.          Top             =   960
  58.          Width           =   1815
  59.       End
  60.       Begin MaskEdBox txtHireDate 
  61.          Height          =   285
  62.          Left            =   120
  63.          Mask            =   "##/##/####"
  64.          MaxLength       =   10
  65.          PromptChar      =   "_"
  66.          TabIndex        =   9
  67.          Top             =   1680
  68.          Width           =   1335
  69.       End
  70.       Begin TextBox txtFirstName 
  71.          Height          =   285
  72.          Left            =   120
  73.          MaxLength       =   20
  74.          TabIndex        =   6
  75.          Top             =   360
  76.          Width           =   2295
  77.       End
  78.       Begin TextBox txtLastName 
  79.          Height          =   285
  80.          Left            =   2640
  81.          MaxLength       =   20
  82.          TabIndex        =   7
  83.          Top             =   360
  84.          Width           =   2295
  85.       End
  86.       Begin Label Label7 
  87.          BackColor       =   &H00C0C0C0&
  88.          Caption         =   "State:"
  89.          Height          =   255
  90.          Left            =   3000
  91.          TabIndex        =   21
  92.          Top             =   1440
  93.          Width           =   615
  94.       End
  95.       Begin Label Label6 
  96.          BackColor       =   &H00C0C0C0&
  97.          Caption         =   "Wage:"
  98.          Height          =   255
  99.          Left            =   1800
  100.          TabIndex        =   20
  101.          Top             =   1440
  102.          Width           =   615
  103.       End
  104.       Begin Label lblEmpNo 
  105.          BackColor       =   &H00C0C0C0&
  106.          Height          =   255
  107.          Left            =   2640
  108.          TabIndex        =   19
  109.          Top             =   960
  110.          Width           =   735
  111.       End
  112.       Begin Label Label5 
  113.          BackColor       =   &H00C0C0C0&
  114.          Caption         =   "Status:"
  115.          Height          =   255
  116.          Left            =   120
  117.          TabIndex        =   18
  118.          Top             =   720
  119.          Width           =   615
  120.       End
  121.       Begin Label Label4 
  122.          BackColor       =   &H00C0C0C0&
  123.          Caption         =   "Hire Date:"
  124.          Height          =   255
  125.          Left            =   120
  126.          TabIndex        =   17
  127.          Top             =   1440
  128.          Width           =   975
  129.       End
  130.       Begin Label Label3 
  131.          BackColor       =   &H00C0C0C0&
  132.          Caption         =   "First Name:"
  133.          Height          =   255
  134.          Left            =   120
  135.          TabIndex        =   16
  136.          Top             =   120
  137.          Width           =   1095
  138.       End
  139.       Begin Label Label2 
  140.          BackColor       =   &H00C0C0C0&
  141.          Caption         =   "Last Name:"
  142.          Height          =   255
  143.          Left            =   2640
  144.          TabIndex        =   15
  145.          Top             =   120
  146.          Width           =   1095
  147.       End
  148.       Begin Label Label1 
  149.          BackColor       =   &H00C0C0C0&
  150.          Caption         =   "Employee Number:"
  151.          Height          =   255
  152.          Left            =   2640
  153.          TabIndex        =   14
  154.          Top             =   720
  155.          Width           =   1695
  156.       End
  157.    End
  158.    Begin CommandButton cmdDelete 
  159.       Caption         =   "&Delete"
  160.       Height          =   375
  161.       Left            =   3840
  162.       TabIndex        =   4
  163.       Top             =   1560
  164.       Width           =   1215
  165.    End
  166.    Begin CommandButton cmdUpdate 
  167.       Caption         =   "&Update"
  168.       Enabled         =   0   'False
  169.       Height          =   375
  170.       Left            =   3840
  171.       TabIndex        =   3
  172.       Top             =   1080
  173.       Width           =   1215
  174.    End
  175.    Begin CommandButton cmdNew 
  176.       Caption         =   "&New"
  177.       Height          =   375
  178.       Left            =   3840
  179.       TabIndex        =   2
  180.       Top             =   600
  181.       Width           =   1215
  182.    End
  183.    Begin CommandButton cmdEdit 
  184.       Caption         =   "&Edit"
  185.       Default         =   -1  'True
  186.       Height          =   375
  187.       Left            =   3840
  188.       TabIndex        =   1
  189.       Top             =   120
  190.       Width           =   1215
  191.    End
  192.    Begin ListBox lstEmps 
  193.       Height          =   2370
  194.       Left            =   120
  195.       TabIndex        =   0
  196.       Top             =   120
  197.       Width           =   3255
  198.    End
  199.    Begin CommandButton cmdClose 
  200.       Cancel          =   -1  'True
  201.       Caption         =   "&Close"
  202.       Height          =   375
  203.       Left            =   3840
  204.       TabIndex        =   5
  205.       Top             =   2040
  206.       Width           =   1215
  207.    End
  208. Option Explicit
  209. Dim dsData As dynaset
  210. Dim bNew%, bChange%, bLocked%
  211. Dim lEmpNo&
  212. Dim bOpen%
  213. Sub cboState_Change ()
  214.     bChange = True
  215. End Sub
  216. Sub cboStatus_Change ()
  217.     bChange = True
  218. End Sub
  219. Sub cboWage_Change ()
  220.     bChange = True
  221. End Sub
  222. Sub cboWage_LostFocus ()
  223.     CheckAndSaveCbo cboWage, "Wages", "Wage", True
  224. End Sub
  225. Function CheckChange () As Integer
  226.     Dim nResponse%
  227.     If bChange = True Then
  228.     Beep
  229.     nResponse = MsgBox("Discard current changes ?", MB_YESNO + MB_ICONQUESTION, TheAppTitle)
  230.     If nResponse = IDYES Then
  231.         CheckChange = True
  232.     Else
  233.         CheckChange = False
  234.     End If
  235.     Else
  236.     CheckChange = True
  237.     End If
  238. End Function
  239. Sub chkActive_Click (Value As Integer)
  240.     bChange = True
  241. End Sub
  242. Sub cmdClose_Click ()
  243.     If CheckChange() Then
  244.     Unload EmpForm
  245.     End If
  246. End Sub
  247. Sub cmdDelete_Click ()
  248.     On Error GoTo delErr
  249.     Dim ssData As snapshot
  250.     Dim qd As querydef
  251.     lEmpNo = GetLBID(lstEmps, "Employee")
  252.     If lEmpNo = -1 Then
  253.     Exit Sub
  254.     End If
  255.     If Not AskUser("Are you sure you want to delete the selected record?") Then
  256.     ArrowCursor
  257.     Exit Sub
  258.     End If
  259.     If bLocked Then
  260.     dsData.Update
  261.     bLocked = False
  262.     End If
  263.     Set qd = TheDatabase.OpenQueryDef("DeleteEmployee")
  264.     qd!id = lEmpNo        ' Set parameter.
  265.     qd.Execute
  266.     txtLastName.Text = ""
  267.     txtFirstName.Text = ""
  268.     SelectText txtHireDate
  269.     txtHireDate.SelText = ""
  270.     chkActive.Value = False
  271.     'reset combos
  272.     cboStatus.ListIndex = -1
  273.     cboWage.ListIndex = -1
  274.     cboWage.Text = ""
  275.     cboState.ListIndex = -1
  276.     LoadListBox "GetAllEmps", -1, lstEmps, False, ","
  277.     bNew = False
  278.     cmdNew.Caption = "&New"
  279.     cmdUpdate.Caption = "&Update"
  280.     cmdUpdate.Enabled = False
  281.     DoEvents
  282.     bChange = False
  283.     ArrowCursor
  284.     Exit Sub
  285. delErr:
  286.     ArrowCursor
  287.     GetErrorMsg Err
  288.     Exit Sub
  289. End Sub
  290. Sub cmdEdit_Click ()
  291.     On Error GoTo editErr
  292.     Dim qd As querydef
  293.     Dim sBuff$, sTmp$, sLine$, sKey$, stat$, lTmp&
  294.     'check for list box selection
  295.     lEmpNo = GetLBID(lstEmps, "Employee")
  296.     If lEmpNo = -1 Then
  297.     Exit Sub
  298.     End If
  299.     HourglassCursor
  300.     bNew = False
  301.     'check for currently loaded record
  302.     If CheckChange() Then
  303.     Enable True
  304.     Set qd = TheDatabase.OpenQueryDef("GetAllEmpData")
  305.     Set dsData = qd.CreateDynaset()
  306.     bOpen = True
  307.     qd.Close
  308.     sBuff = "EmpNo = " & Str$(lEmpNo)
  309.     dsData.FindFirst sBuff
  310.     If dsData.NoMatch Then
  311.         InformUser "ID no longer available: "
  312.     Else
  313.         dsData.Edit
  314.         bLocked = True
  315.         lblEmpNo.Caption = lEmpNo
  316.         txtLastName.Text = ReturnString("LastName")
  317.         txtFirstName.Text = ReturnString("FirstName")
  318.         SelectText txtHireDate
  319.         txtHireDate.SelText = Format$(ReturnString("HireDate"), "mm/dd/yyyy")
  320.         If Not IsNull(dsData("Status")) Then
  321.         ScanCombo dsData("Status"), cboStatus
  322.         Else
  323.         cboStatus.ListIndex = -1
  324.         End If
  325.         cboWage.Text = Format$(ReturnString("Wage"), "##.00")
  326.         FindState ReturnString("State"), cboState
  327.         If Not IsNull(dsData("Active")) Then
  328.         chkActive.Value = Val(dsData("Active"))
  329.         Else
  330.         chkActive.Value = False
  331.         End If
  332.         SelectText txtLastName
  333.         SelectText txtFirstName
  334.         SelectText txtHireDate
  335.         cmdUpdate.Caption = "&Update"
  336.         cmdUpdate.Enabled = True
  337.         DoEvents
  338.         bChange = False
  339.         bNew = False
  340.         txtFirstName.SetFocus
  341.     End If
  342.     End If
  343.     ArrowCursor
  344.     Exit Sub
  345. editErr:
  346.     ArrowCursor
  347.     GetErrorMsg Err
  348.     Exit Sub
  349. End Sub
  350. Sub cmdNew_Click ()
  351.     'blank fields
  352.     txtLastName.Text = ""
  353.     txtFirstName.Text = ""
  354.     lblEmpNo.Caption = ""
  355.     'reset combos
  356.     cboStatus.ListIndex = -1
  357.     cboWage.ListIndex = -1
  358.     cboWage.Text = ""
  359.     cboState.ListIndex = -1
  360.     If Not bNew Then
  361.     lEmpNo = GetID("Employee")
  362.     lblEmpNo.Caption = Str$(lEmpNo)
  363.     SelectText txtHireDate
  364.     txtHireDate.SelText = Format$(Now, "mm/dd/yyyy")
  365.     chkActive.Value = True
  366.     Enable True
  367.     bNew = True
  368.     cmdNew.Caption = "&Cancel"
  369.     cmdUpdate.Caption = "&Save"
  370.     cmdUpdate.Enabled = True
  371.     txtFirstName.SetFocus
  372.     Else
  373.     Enable False
  374.     bNew = False
  375.     SelectText txtHireDate
  376.     txtHireDate.SelText = ""
  377.     chkActive.Value = False
  378.     cmdNew.Caption = "&New"
  379.     cmdUpdate.Caption = "&Update"
  380.     cmdUpdate.Enabled = False
  381.     End If
  382.     DoEvents
  383.     bChange = False
  384. End Sub
  385. Sub cmdUpdate_Click ()
  386.     On Error GoTo UpdateErr
  387.     Dim qd As querydef
  388.     Dim sTmp$
  389.     If Len(LTrim$(txtLastName.Text)) < 1 Then
  390.     StopUser "Last name cannot be blank!"
  391.     Exit Sub
  392.     End If
  393.     If Len(LTrim$(txtFirstName.Text)) < 1 Then
  394.     StopUser "First name cannot be blank!"
  395.     Exit Sub
  396.     End If
  397.     HourglassCursor
  398.     If bNew Then
  399.     Set qd = TheDatabase.OpenQueryDef("GetAllEmpData")
  400.     Set dsData = qd.CreateDynaset()
  401.     bOpen = True
  402.     qd.Close
  403.     If dsData.EOF And dsData.BOF Then
  404.         dsData.AddNew
  405.         dsData("EmpNo") = lEmpNo
  406.         dsData.Update
  407.         dsData.MoveFirst
  408.     Else
  409.         dsData.AddNew
  410.         dsData("EmpNo") = lEmpNo
  411.         dsData.Update
  412.         dsData.MoveLast
  413.     End If
  414.     dsData.Edit
  415.     End If
  416.     dsData("LastName") = txtLastName.Text
  417.     dsData("FirstName") = txtFirstName.Text
  418.     dsData("HireDate") = txtHireDate.Text
  419.     If cboStatus.ListIndex = -1 Then
  420.     dsData("Status") = -1
  421.     Else
  422.     dsData("Status") = cboStatus.ItemData(cboStatus.ListIndex)
  423.     End If
  424.     dsData("Active") = LTrim$(Str$(Abs(chkActive.Value)))
  425.     dsData("Wage") = Val(cboWage.Text)
  426.     dsData("State") = LTrim$(cboState.Text)
  427.     dsData.Update
  428.     bNew = False
  429.     cmdNew.Caption = "&New"
  430.     bLocked = False
  431.     Enable False
  432.     cmdUpdate.Enabled = False
  433.     cmdUpdate.Caption = "&Update"
  434.     DoEvents
  435.     bChange = False
  436.     LoadListBox "GetAllEmps", lEmpNo, lstEmps, False, ","
  437.     ArrowCursor
  438.     Exit Sub
  439. UpdateErr:
  440.     ArrowCursor
  441.     GetErrorMsg Err
  442.     Exit Sub
  443. End Sub
  444. Sub Enable (bVal%)
  445.     cboStatus.Enabled = bVal
  446.     cboWage.Enabled = bVal
  447.     cboState.Enabled = bVal
  448.     txtLastName.Enabled = bVal
  449.     txtFirstName.Enabled = bVal
  450.     txtHireDate.Enabled = bVal
  451.     chkActive.Enabled = bVal
  452. End Sub
  453. Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
  454.     If KeyCode = KEY_F1 Then
  455.     CallHelp Employee_Data_Form
  456.     End If
  457. End Sub
  458. Sub Form_Load ()
  459.     Enable False
  460.     bNew = False
  461.     bOpen = False
  462.     bChange = False
  463.     bLocked = False
  464.     LoadListBox "GetAllEmps", -1, lstEmps, False, ","
  465.     LoadCombo "GetActiveStatuses", -1, cboStatus, False, "", True
  466.     LoadCombo2 "GetWages", -1, cboWage, False, "", True, True
  467.     FillStates cboState
  468. End Sub
  469. Sub Form_Unload (Cancel As Integer)
  470.     If bOpen Then
  471.     dsData.Close
  472.     End If
  473. End Sub
  474. Sub LoadCombo2 (sQDef As String, lDefault As Long, cboCtrl As ComboBox, bParam As Integer, sSeparator As String, bClear As Integer, bPad%)
  475.     On Error GoTo lc2Err
  476.     Dim ssData As snapshot
  477.     Dim qDef As querydef
  478.     Dim sLine$, i%, nIndex%, sSep$, sTmp$
  479.     HourglassCursor
  480.     nIndex = -1
  481.     Set qDef = TheDatabase.OpenQueryDef(sQDef)
  482.     If bParam Then
  483.     qDef!Param = lDefault
  484.     End If
  485.     Set ssData = qDef.CreateSnapshot()
  486.     qDef.Close
  487.     If Len(sSeparator) = 0 Then
  488.     sSep = " "
  489.     Else
  490.     sSep = sSeparator & " "
  491.     End If
  492.     If bClear Then
  493.     cboCtrl.Clear
  494.     End If
  495.     While Not ssData.EOF
  496.     If Not IsNull(ssData(0)) Then
  497.     sLine = ""
  498.     For i = 0 To ssData.Fields.Count - 1
  499.         If Not IsNull(ssData(i)) Then
  500.         If bPad Then
  501.             sLine = sLine & Format$(AddQuoteV(ssData(i)), "##.00")
  502.         Else
  503.             sLine = sLine & AddQuoteV(ssData(i))
  504.         End If
  505.         If i < ssData.Fields.Count - 1 Then
  506.             sLine = sLine & sSep
  507.         End If
  508.         End If
  509.     Next
  510.     cboCtrl.AddItem sLine
  511.     If lDefault <> -1 Then
  512.         If lDefault = ssData(0) Then
  513.         nIndex = cboCtrl.NewIndex
  514.         End If
  515.     End If
  516.     End If
  517.     ssData.MoveNext
  518.     Wend
  519.     ssData.Close
  520.     If nIndex <> -1 Then
  521.     cboCtrl.ListIndex = nIndex
  522.     End If
  523.     ArrowCursor
  524.     Exit Sub
  525. lc2Err:
  526.     ArrowCursor
  527.     GetErrorMsg Err
  528.     Exit Sub
  529. End Sub
  530. Sub lstEmps_DblClick ()
  531.     cmdEdit = True
  532. End Sub
  533. Function ReturnString$ (sField$)
  534.     If Not IsNull(dsData(sField)) Then
  535.     ReturnString = dsData(sField)
  536.     Else
  537.     ReturnString = ""
  538.     End If
  539. End Function
  540. Sub txtFirstName_Change ()
  541.     bChange = True
  542. End Sub
  543. Sub txtFirstName_LostFocus ()
  544.     SelectText txtFirstName
  545. End Sub
  546. Sub txtHireDate_Change ()
  547.     bChange = True
  548.     If InStr(txtHireDate.Text, "_") = 0 Then
  549.     If ValidateDate(txtHireDate) Then
  550.         cmdUpdate.Enabled = True
  551.     Else
  552.         cmdUpdate.Enabled = False
  553.     End If
  554.     Else
  555.     cmdUpdate.Enabled = False
  556.     End If
  557. End Sub
  558. Sub txtHireDate_LostFocus ()
  559.     SelectText txtHireDate
  560. End Sub
  561. Sub txtLastName_Change ()
  562.     bChange = True
  563. End Sub
  564. Sub txtLastName_LostFocus ()
  565.     SelectText txtLastName
  566. End Sub
  567.